/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package traspasos.beans;

import abstractClasses.AbstractListadoEntidades;
import entities.Almacen;
import entities.AlmacenTienda;
import entities.Tienda;
import entities.Usuario;
import entities.UsuarioTienda;
import facades.AlmacenFacade;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import qualifiers.UsuarioLogeado;

/**
 *
 * @author damfercer
 */
@Named(value = "listadoAlmacenesUsuarioBean")
@SessionScoped
public class ListadoAlmacenesUsuarioBean extends AbstractListadoEntidades<Almacen, AlmacenFacade> implements Serializable {
    @Inject
    @UsuarioLogeado
    private Usuario usuario;
    /**
     * Creates a new instance of ListadoRecepcionesPedidoFabricaBean
     */
    public ListadoAlmacenesUsuarioBean() {
    }
    
    @PostConstruct
    @Override
    public void init(){
        setFacade(getEntityFacadeInstance().get());
        setListadoEntidades(getAlmacenesDeUsuario());
    }
    
    private List<Almacen> getAlmacenesDeUsuario(){
        List<Almacen> almacenesUsuario=new ArrayList<Almacen>();
        List<UsuarioTienda> usuarioTiendas=usuario.getUsuarioTiendaList();
        for (UsuarioTienda usuarioTienda : usuarioTiendas) {
            Tienda t=usuarioTienda.getTienda();
            for (AlmacenTienda almacenTienda : t.getAlmacenTiendaList()) {
                Almacen almacenVentas=almacenTienda.getAlmacen();
                almacenesUsuario.add(almacenVentas);
                if(almacenVentas.getAlmacenList()!=null && !almacenVentas.getAlmacenList().isEmpty()){
                    Almacen almacenReserva=almacenVentas.getAlmacenList().iterator().next();
                    almacenesUsuario.add(almacenReserva);
                }
            }
        }
        return almacenesUsuario;
    }
    
    public String irAInventario(){
        return "/views/logistica/InventarioAlmacen?faces-redirect=true";
    }
}
